﻿using System;

using System;

namespace AbstractFactory
{
    class Program
    {
        static void Main(string[] args)
        {
         
            IFactory kmeansFactory = new KmeansFactory();
            IClustering kmeans = kmeansFactory.CreateClustering();
            IParams kmeansParams = kmeansFactory.CreateParams();
            Console.WriteLine(kmeans.Calculate(kmeansParams));

          
            IFactory dbscanFactory = new DbscanFactory();
            IClustering dbscan = dbscanFactory.CreateClustering();
            IParams dbscanParams = dbscanFactory.CreateParams();
            Console.WriteLine(dbscan.Calculate(dbscanParams));

           
            IFactory hierarchicalFactory = new HierarchicalFactory();
            IClustering hierarchical = hierarchicalFactory.CreateClustering();
            IParams hierarchicalParams = hierarchicalFactory.CreateParams();
            Console.WriteLine(hierarchical.Calculate(hierarchicalParams));

            Console.ReadKey();
        }
    }
}
